package com.ronri.list.editview;

import android.content.Context;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;

import com.cz.nongyetongv5.R;
import com.ronri.list.editview.controls.EditCardTextBox;

import java.io.FileInputStream;
import java.io.FileNotFoundException;

/**
 * 文件：ImageItemElement.java
 * 包名：com.ronri.list.editview;   --- 正式发布时需要修正
 * 说明：图片列表模式
 * 作者：MS During
 * 日期：2017/4/26
 * 历史：
 */
public class ImageItemElement extends AbstractItemElement {

    final private String _TAG = "ImageItemElement";

    /***
     * 构造函数
     *
     * @param context     句柄
     * @param szTitle     标题
     * @param szInfo      信息
     * @param dLeftImage  左边图标
     * @param dRightImage 右边图标
     * @param szFieldName 字段名称
     * @param szValue     字段值
     * @param bStatus     状态
     */
    public ImageItemElement(Context context, String szTitle, String szInfo, Drawable dLeftImage, Drawable dRightImage, String szFieldName, String szValue, boolean bStatus) {
        super(context, szTitle, szInfo, dLeftImage, dRightImage, szFieldName, szValue, bStatus);
    }

    /***
     * 覆盖创建View函数
     * @param parent
     * @return
     */
    @Override
    public View CreateView(ViewGroup parent) {

        // 创建默认视图
        View cView = super.CreateView(parent);

        // 获取标题元素
        TextView tvTitle = (TextView) cView.findViewById(R.id.title);

        // 设置标题
        tvTitle.setText(this.Title);

        // 获取信息元素
        TextView tvInfo = (TextView) cView.findViewById(R.id.info);

        // 设置显示的信息
        tvInfo.setText(this.Info);

        // 设置图标
        if (this.RightImage != null){
            // 视图View
            ImageView ivImage = (ImageView)cView.findViewById(R.id.leftimg);
            ivImage.setImageDrawable(this.RightImage);
        }

        // 判断当前状态，并设置状态图标
        if(this.LeftImage != null)
        {
            if(this.IsOK() == 1){
                ImageView ivImage = (ImageView)cView.findViewById(R.id.rightimg);
                ivImage.setImageDrawable(this.LeftImage);
            }
        }

        return cView;
    }

    /***
     * 加载本地图片
     * @param url
     * @return
     */
    public static Bitmap getLoacalBitmap(String url) {
        try {
            FileInputStream fis = new FileInputStream(url);

            ///把流转化为Bitmap图片
            return BitmapFactory.decodeStream(fis);

        } catch (FileNotFoundException e) {
            e.printStackTrace();
            return null;
        }
    }

    /***
     * 覆盖格式化输出
     * @return
     */
    @Override
    public String FormatInfo(String Value) {
        return Value;
    }

    /***
     * 执行弹框操作
     */
    @Override
    public void Excute() {

        Intent intent = new Intent(getContext(),
                EditCardTextBox.class);
        // 准备参数
        Bundle bundle = new Bundle();

        // 传递对象
        bundle.putSerializable("control", Control);
        intent.putExtras(bundle);
        getContext().startActivity(intent);

        // 判断是否不为空，不为空则开始调用弹框等待输入
        if(Control != null){

        }else{
            Log.e(_TAG, "当前Item未指定组件，请检查代码");
        }
    }
}
